Adobe Flash (formerly Macromedia Flash) is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast. More recently, it has been positioned as a tool for "Rich Internet Applications" ("RIAs").
Flash manipulates vector and raster graphics to provide animation of text, drawings, and still images. It supports bidirectional streaming of audio and video, and it can capture user input via mouse, keyboard, microphone, and camera. Flash contains an object-oriented language called ActionScript and supports automation via the JavaScript Flash language (JSFL).
Flash content may be displayed on various computer systems and devices, using Adobe Flash Player, which is available free of charge for common web browsers, some mobile phones and a few other electronic devices (using Flash Lite).
Some users feel that Flash enriches their web experience, while others find the extensive use of Flash animation, particularly in advertising, intrusive and annoying, giving rise to a cottage industry that specializes in blocking Flash content. Flash has also been criticized for adversely affecting the usability of web pages.[1]
Contents |
Flash originated with the application SmartSketch, developed by Jonathan Gay. It was published by FutureWave Software, which was founded by Gay and Charlie Jackson. SmartSketch was a drawing application for pen computers running the PenPoint OS.[2][3] When PenPoint failed in the marketplace, SmartSketch was ported to Microsoft Windows and Mac OS. As the Internet became more popular, FutureWave added cell animation editing to the vector drawing capabilities of SmartSketch and released FutureSplash Animator on multiple platforms.[4] FutureWave approached Adobe Systems with an offer to sell them FutureSplash in 1995, but Adobe turned them down at that time. FutureSplash was used by Microsoft in its early work with the Internet (MSN), and also by Disney Online for their subscription-based service, Disney's Daily Blast. In 1996, FutureSplash was acquired by Macromedia and released as Flash, contracting "Future" and "Splash". Flash is currently developed and distributed by Adobe Systems, as the result of their 2005 purchase of Macromedia.
Adobe Labs (previously called Macromedia Labs) is a source for news and pre-release versions of emerging products and technologies from Adobe. Most innovations, such as Flash 10, Flex 3, and ActionScript 3.0 have all been discussed and/or trialled on the site.
One area Adobe is focusing on (as of February 2009) is the deployment of Rich Internet Applications (RIAs). To this end, they released Adobe Integrated Runtime (AIR), a cross-platform runtime environment that builds rich internet applications in Adobe Flash. The output can be deployed as desktop applications. It surpassed 100 million installations worldwide in February 2009.[5] Flash can be installed independently from Adobe's website (adobe.com) and is installed silently when Adobe Reader is installed.[6]
Two additional components designed for large-scale implementation have been proposed by Adobe for future releases of Flash: first, the option to require an ad to be played in full before the main video piece is played; and second, the integration of digital rights management (DRM) capabilities. This way Adobe can give companies the option to link an advertisement with content and make sure that both are played and remain unchanged.[7]
On May 1, 2008, Adobe announced the Open Screen Project, which hopes to provide a consistent application interface across devices such as personal computers, mobile devices, and consumer electronics.[8] When the project was announced, several goals were outlined: the abolition of licensing fees for Adobe Flash Player and Adobe Integrated Runtime, the removal of restrictions on the use of the Shockwave Flash (SWF) and Flash Video (FLV) file formats, the publishing of application programming interfaces for porting Flash to new devices, and the publishing of The Flash Cast protocol and Action Message Format (AMF), which let Flash applications receive information from remote databases.[8]
As of February 2009[update], the specifications removing the restrictions on the use of SWF and FLV/F4V specs have been published.[9] The Flash Cast protocol—now known as the Mobile Content Delivery Protocol—and AMF protocols have also been made available,[9] with AMF available as an open source implementation, BlazeDS. Work on the device porting layers is in the early stages. Adobe intends to remove the licensing fees for Flash Player and Adobe AIR for devices at their release for the Open Screen Project.
The list of mobile device providers who have joined the project includes Palm, Motorola, and Nokia,[10] who, together with Adobe, have announced a $10 million Open Screen Project fund.[11]
Flash Player for smart phones was made available to handset manufacturers at the end of 2009.[12]
In November 2011 there were a number of announcements that demonstrated a possible decline in demand for rich Internet application architectures, and Flash in particular.[13]
However, in November 2011 Adobe announced the end of Flash for mobile platforms or TV, instead focusing on HTML5 for browser content and Adobe AIR for the various mobile AppStores.[14][15][16] Pundits questioned its continued relevance even on the desktop[17] and described it as "the beginning of the end".[18] RIM announced that it would continue to develop Flash for the PlayBook.[19]
Flash files are in the SWF format, traditionally called "ShockWave Flash" movies, "Flash movies," or "Flash applications", usually have a .swf file extension, and may be used in the form of a web page plug-in, strictly "played" in a standalone Flash Player, or incorporated into a self-executing Projector movie (with the .exe extension in Microsoft Windows). Flash Video files[spec 1] have a .flv file extension and are either used from within .swf files or played through a flv-aware player, such as VLC, or QuickTime and Windows Media Player with external codecs added.
The use of vector graphics combined with program code allows Flash files to be smaller—and thus for streams to use less bandwidth—than the corresponding bitmaps or video clips. For content in a single format (such as just text, video, or audio), other alternatives may provide better performance and consume less CPU power than the corresponding Flash movie, for example when using transparency or making large screen updates such as photographic or text fades.
In addition to a vector-rendering engine, the Flash Player includes a virtual machine called the ActionScript Virtual Machine (AVM) for scripting interactivity at run-time, support for video, MP3-based audio, and bitmap graphics. As of Flash Player 8, it offers two video codecs: On2 Technologies VP6 and Sorenson Spark, and run-time support for JPEG, Progressive JPEG, PNG, and GIF. In the next version, Flash is slated to use a just-in-time compiler for the ActionScript engine.
Flash Player is a browser plugin, and cannot run within a usual e-mail client, such as Outlook. Instead, a link must open a browser window. A Gmail labs feature allows playback of YouTube videos linked in emails.
Virtually all browser plugins for video are free of charge and cross-platform, including Adobe's offering of Flash Video, which was first introduced with Flash version 6. Flash Video has been a popular choice for websites due to the large installed user base and programmability of Flash. In 2010, Apple publicly criticized Adobe Flash, including its implementation of video playback for not taking advantage of hardware acceleration, one reason Flash is not to be found on Apple's mobile devices. Soon after Apple's criticism, Adobe demoed and released a beta version of Flash 10.1, which takes advantage of GPU hardware acceleration even on a Mac. Flash 10.2 beta, released December 2010, adds hardware acceleration for the whole video rendering pipeline.
Flash Audio is most commonly encoded in MP3 or AAC (Advanced Audio Coding) however it does also support ADPCM, Nellymoser (Nellymoser Asao Codec) and Speex audio codecs. Flash allows sample rates of 11, 22 and 44.1 kHz. It does not support 48 kHz audio sample rate, which is the standard TV and DVD sample rate.
On August 20, 2007, Adobe announced on its blog that with Update 3 of Flash Player 9, Flash Video will also support some parts of the MPEG-4 international standards.[20] Specifically, Flash Player will have support for video compressed in H.264 (MPEG-4 Part 10), audio compressed using AAC (MPEG-4 Part 3), the F4V, MP4 (MPEG-4 Part 14), M4V, M4A, 3GP and MOV multimedia container formats, 3GPP Timed Text specification (MPEG-4 Part 17), which is a standardized subtitle format and partial parsing support for the 'ilst' atom, which is the ID3 equivalent iTunes uses to store metadata. MPEG-4 Part 2 and H.263 will not be supported in F4V file format. Adobe also announced that it will be gradually moving away from the FLV format to the standard ISO base media file format (MPEG-4 Part 12) owing to functional limits with the FLV structure when streaming H.264. The final release of the Flash Player supporting some parts of MPEG-4 standards had become available in Fall 2007.[21]
Adobe Flash Player 10.1 does not support acoustic echo cancellation, unlike the VoIP offerings of Skype and Google Voice, making this and earlier versions of Flash less suitable for group calling or meetings. Flash Player 10.3 Beta incorporates acoustic echo cancellation.
Adobe previously announced that version 11 of Adobe Flash Player would support the new royalty-free container, WebM, but for yet unclarified reasons there is no WebM support in Adobe Flash Player 11.See announcement
The reliance on Adobe for decoding Flash is seen as a concern by advocates of open standards and free software. Proponents of open standards generally favor formats for which specifications are openly available and complete enough to make independent implementation straightforward. One advantage is that data stored in the format will be future proof in the presence of such specifications. Another possible advantage, as desired by proponents of free software, is having a usable implementation in free software.
Adobe's restrictions on the use of the SWF/FLV specifications have been lifted as of February 2009 (see Adobe's Open Screen Project). However, despite efforts of projects like Gnash, Swfdec and Lightspark, a complete free software Flash player is yet to be seen, as of September 2011. For example, Gnash has no support for SWF v10 yet.[22] Notably, Gnash has been a long standing high priority project of the Free Software Foundation, first noted by this article in December 2007 and ranked number one in September 2011.
Historically, notable representants of free software, open standards and the World Wide Web have warned against use of Flash for the above reasons:
Founder of Mozilla Europe, Tristan Nitot, problematized in 2008: [23]
Companies building websites should beware of proprietary rich-media technologies like Adobe's Flash and Microsoft's Silverlight. (…) You're producing content for your users and there's someone in the middle deciding whether users should see your content.
Representing open standards, inventor of CSS and co-author of HTML5, Håkon Wium Lie explained in a Google tech talk of 2007, entitled "the <video> element", the proposal of Theora as the format for HTML5 video:[24]
I believe very strongly, that we need to agree on some kind of baseline video format if [the video element] is going to succeed. Flash is today the baseline format on the web. The problem with Flash is that it's not an open standard.
Presenting the free software movement, Richard Stallman stated in a speech in 2004 that:[25]
The use of Flash in websites is a major problem for our community.
In October 1998, Macromedia disclosed the Flash Version 3 Specification to the world on its website. It did this in response to many new and often semi-open formats competing with SWF, such as Xara's Flare and Sharp's Extended Vector Animation formats. Several developers quickly created a C library for producing SWF. In February 1999, the company introduced MorphInk 99, the first third-party program to create SWF files. Macromedia also hired Middlesoft to create a freely available developers' kit for the SWF file format versions 3 to 5.
Macromedia made the Flash Files specifications for versions 6 and later available only under a non-disclosure agreement, but they are widely available from various sites.
In April 2006, the Flash SWF file format specification was released with details on the then newest version format (Flash 8). Although still lacking specific information on the incorporated video compression formats (On2, Sorenson Spark, etc.), this new documentation covered all the new features offered in Flash v8 including new ActionScript commands, expressive filter controls, and so on. The file format specification document is offered only to developers who agree to a license agreement that permits them to use the specifications only to develop programs that can export to the Flash file format. The license forbids the use of the specifications to create programs that can be used for playback of Flash files. The Flash 9 specification was made available under similar restrictions.[26]
In June 2009, Adobe launched the Open Screen Project (Adobe link), which made the SWF specification available without restrictions. Previously, developers could not use the specification for making SWF-compatible players, but only for making SWF-exporting authoring software. The specification still omits information on codecs such as Sorenson Spark, however.[27]
The Adobe Flash Professional multimedia authoring program is used to create content for the Adobe Engagement Platform, such as web applications, games and movies, and content for mobile phones and other embedded devices.
Open Source projects like Ajax Animator and the (now defunct) UIRA aim to create a Flash development environment, complete with a graphical user environment. Alternatively, programs such as Vectorian Giotto, swfmill, SWFTools, and MTASC provide tools to create SWF files, but do so by compiling text, actionscript or XML files into Flash animations. It is also possible to create SWF files programmatically using the Ming library, which has interfaces for C, PHP, C++, Perl, Python, and Ruby. haXe is an open source, high-level object-oriented programming language geared towards web-content creation that can compile Flash files.
Many shareware developers produced Flash creation tools and sold them for under US$50 between 2000 and 2002. In 2003 competition and the emergence of free Flash creation tools had driven many third-party Flash-creation tool-makers out of the market, allowing the remaining developers to raise their prices, although many of the products still cost less than US$100 and support ActionScript. As for open source tools, KToon can edit vectors and generate SWF, but its interface is very different from Macromedia's. Another, more recent example of a Flash creation tool is SWiSH Max made by an ex-employee of Macromedia. Toon Boom Technologies also sells a traditional animation tool, based on Flash.
In addition, several programs create .swf-compliant files as output from their programs. Among the most famous of these are Screencast tools, which leverage the ability to do lossless compression and playback of captured screen content to produce demos, tutorials, or software simulations of programs. These programs are typically designed for use by non-programmers, and create Flash content quickly and easily, but cannot actually edit the underlying Flash code (i.e. the tweening and transforms, etc.) Screencam is perhaps the oldest screencasting authoring tool to adopt Flash as the preferred output format, having been developed since the mid-90s. The fact that screencasting programs have adopted Flash as the preferred output is testament to Flash's presence as a ubiquitous cross-platform animation file format.
Other tools focus on creating specific types of Flash content. Anime Studio is a 2D animation software package specialized for character animation that creates SWF files. Express Animator is similarly aimed specifically at animators. Question Writer publishes its quizzes to Flash file format.
Users who are not programmers or web designers will also find on-line tools that allow them to build full Flash-based websites. One of the oldest services available (1998) is FlashToGo. Such companies provide a wide variety of pre-built models (templates) associated to a Content Management System that empowers users to easily build, edit and publish their websites. Other sites, that allows for greater customization and design flexibility are Wix.com and CirclePad.
Adobe wrote a software package called Adobe LiveMotion, designed to create interactive animation content and export it to a variety of formats, including SWF. LiveMotion went through two major releases, but failed to gain any notable user base.
In February 2003, Macromedia purchased Presedia, which had developed a Flash authoring tool that automatically converted PowerPoint files into Flash. Macromedia subsequently released the new product as Breeze, which included many new enhancements. In addition, (as of version 2) Apple's Keynote presentation software also allows users to create interactive presentations and export to SWF.
Adobe Flash Player (software) exists for a variety of desktop operating systems, including Windows, Mac OS 9/X, Linux, Solaris, HP-UX, OS/2, QNX, BeOS, and IRIX.
Flash as a format has become widespread on the desktop market; one estimate is that 95% of PCs have it,[28] while Adobe claims that 98 percent of U.S. web users and 99.3 percent of all Internet desktop users have installed the Flash Player,[29][30][31] with 92 to 95% (depending on region) having the latest version.[32] Numbers vary depending on the detection scheme and research demographics.
Adobe Flash Player exists for a variety of mobile operating systems, including Android (since version 2.2[33]), Pocket PC/Windows CE, QNX (e.g. on BlackBerry PlayBook), Symbian, Palm OS, and webOS (since version 2.0[34]).
There is no Adobe Flash Player for iOS devices (iPhone, iPad and iPod Touch). The iPhone accounts for more than 60% of global smartphone web traffic and the iPod touch makes up more than 95% of "mobile Internet device" traffic. This hurts Adobe's ability to market Flash as a ubiquitous mobile platform. However, Flash content can be made to run on iOS devices in a variety of ways:
The mobile version of Internet Explorer 8 for Windows Phone does not support Flash.[38] The IE9 web browser on Microsoft Windows Phone 7.5 ('Mango') does not support Flash either.[39]
On November 9, 2011, Adobe announced[40] that it will no longer develop Flash for Mobile Platforms and is planning on developing new products with more open technologies and standards like HTML5, JavaScript and CSS3.
Adobe Flash Lite is a lightweight version of Adobe Flash Player intended for mobile phones and other portable electronic devices like Chumby and iRiver.
Downloading Flash is blocked in countries that are under U.S. economic sanctions (such as Syria & Sudan). Users in these countries are blocked (by Adobe) from downloading Flash plug-ins for both Internet Explorer and Firefox browsers.
Using Flash tends to break conventions associated with normal HTML pages. Selecting text, scrolling,[41] form control and right-clicking act differently than with a regular HTML webpage. Many such interface unexpectancies are fixable by the designer. Usability expert Jakob Nielsen published an Alertbox in 2000 entitled, Flash: 99% Bad, which listed issues like these.[42] Some problems have been at least partially fixed since Nielsen's complaints:
Flash content is usually embedded using the object
or embed
HTML element[48] Software that does not support either of these elements, and users who cannot or will not install a plugin, will see the replacement text if this is supplied by the web page.
Some web browsers default to not play Flash content before the user clicks on it, e.g. Konqueror, K-Meleon. Equivalent "Flash blocker" extensions also exist for many popular browsers: Firefox has Flashblock and NoScript, and Opera versions since 10.5 feature native Flash blocking. Opera Turbo requires the user to click to play Flash content. Internet Explorer has Foxie, which contains a number of features, one of them also named Flashblock. WebKit-based browsers under Mac OS X, such as Apple's Safari, have ClickToFlash.[49]
Flash's security record[50] has caused several security experts to recommend to either not install Flash or to block it.[51] The US-CERT recommends to block Flash using NoScript.[52] Charlie Miller recommended "not to install Flash"[53] at the computer security conference CanSecWest. As of October 31, 2010, The Flash Player has over 100 CVE entries,[54] 65 of which have been ranked with a high severity (leading to arbitrary code execution), and 40 ranked medium. In February 2010, Adobe officially apologized[55] for not fixing a known vulnerability for over 1 year. In June 2010 Adobe announced a "critical vulnerability" in recent versions, saying there are reports that this vulnerability is being actively exploited in the wild against both Adobe Flash Player, and Adobe Reader and Acrobat.[56][57] Later, in October 2010, Adobe announced[58] another critical vulnerability, this time also affecting Android-based mobile devices. Android users have been recommended to disable Flash or make it only on demand.[59]
Symantec's Internet Security Threat Report[60] states that a remote code execution in Adobe Reader and Flash Player[61] was the second most attacked vulnerability in 2009. The same report also recommends to employ browser add-ons wherever possible to disable Adobe Flash Player when visiting untrusted sites. McAfee predicted that Adobe software, especially Reader and Flash, would be primary target for attacks in 2010.[62] Adobe applications had become, at least at some point, the most popular client-software targets for attackers during the last quarter of 2009.[63]
Like the HTTP cookie, a flash cookie (also known as a “Local Shared Object”) can be used to save application data. Flash cookies are not shared across domains. An August 2009 study by the Social Science Research Network found that 50% of websites using Flash were also employing flash cookies, yet privacy policies rarely disclosed them, and user controls for privacy preferences were lacking.[64] Most browsers' cache and history suppress or delete functions do not affect Flash Player's writing Local Shared Objects to its own cache, and the user community is much less aware of the existence and function of Flash cookies than HTTP cookies.[65] Thus, users having deleted HTTP cookies and purged browser history files and caches may believe that they have purged all tracking data from their computers when in fact Flash browsing history remains. Adobe's own Flash Website Storage Settings panel, a submenu of Adobe's Flash Settings Manager web application, and other editors and toolkits can manage settings for and delete Flash Local Shared Objects.[66]
64-bit support of Adobe Flash Player was reintroduced in version 11, released October 4, 2011. 32-bit and 64-bit versions for Windows, Mac and Linux are released in sync. Other prominent features of the release include hardware acceleration through the Stage3D API.[67]
The first experimental release of 64-bit builds of Adobe Flash Player was for the Linux platform,[68] on November 11, 2008.[69] The project was closed temporarily on June 15, 2010,[70] while Adobe was preparing for the preview release on September 15, 2010.
The official 32-bit player is still distributed in some 64-bit Linux distributions e.g. openSUSE, older versions of Ubuntu etc., of which some users have reported problems with the 32-bit player on some websites.[71][72][73] Affected users can install the 64-bit player manually[74] or through a special repository.[75]
|
|
|
|
|